/**** 此文件说明请看注释 *****/
// 可以用自己项目的请求方法
// 请求配置说明：https://ext.dcloud.net.cn/plugin?id=822
// import $http from "@/config/requestConfig";
import sheep from "@/sheep";
/**** 结束 *****/
const platform = uni.getSystemInfoSync().platform;
export default {
  // 发起ajax请求获取服务端版本号
  getServerNo: (version, isPrompt = false, callback) => {
    let httpData = {
      version: version.versionCode,
      // 版本名称
      versionName: version.versionName,
      // setupPage参数说明（判断用户是不是从设置页面点击的更新，如果是设置页面点击的更新，有不要用静默更新了，不然用户点击没反应很奇怪的）
      setupPage: isPrompt,
    };
    if (platform == "android") {
      httpData.type = 1101;
    } else {
      httpData.type = 1102;
    }
    /* 接口入参说明
     * version: 应用当前版本号（已自动获取）
     * versionName: 应用当前版本名称（已自动获取）
     * type：平台（1101是安卓，1102是IOS）
     */
    /****************以下是示例*******************/
    // 可以用自己项目的请求方法（接口自己找后台要，插件不提供）
    // $http
    //   .get("/version/getNewAppVersion", httpData, {
    //     isPrompt: isPrompt,
    //   })
    sheep.$api.user
      .getNewAppVersion(httpData)
      .then((res) => {
        console.log("=== 服务器版本信息 ===");
        console.log("服务器版本号（原始）:", res.data.versionCode);
        console.log("当前版本号:", version.versionCode);
        console.log("下载链接:", res.data.downloadUrl);

        // 将服务器版本号转换为数字格式（去掉小数点）
        let serverVersionCode;
        if (typeof res.data.versionCode === "string") {
          serverVersionCode = parseInt(res.data.versionCode.replace(/\./g, ""));
        } else {
          serverVersionCode = res.data.versionCode;
        }
        console.log("服务器版本号（转换后）:", serverVersionCode);

        if (res.data && res.data.downloadUrl) {
          // 检查是否需要更新
          if (serverVersionCode > version.versionCode) {
            console.log("发现新版本，触发更新弹窗");
            console.log("=== 重要：设置updateType为solicit ==="); // 添加这行

            // 使用solicit模式显示确认弹框，而不是forcibly
            callback &&
              callback({
                versionCode: res.data.versionCode,
                versionName: res.data.versionName,
                versionInfo: res.data.versionInfo || "发现新版本，请及时更新",
                downloadUrl: res.data.downloadUrl,
                updateType: "solicit", // 使用solicit显示确认弹框
                forceUpdate: true, // 添加强制更新标志用于重复弹窗
              });
            console.log("=== 已调用callback，传递solicit类型 ==="); // 添加这行
          } else {
            console.log("无需更新，当前版本已是最新");
          }
        } else if (isPrompt) {
          console.log("暂无新版本或下载链接缺失");
          uni.showToast({
            title: "暂无新版本",
            icon: "none",
          });
        }
      })
      .catch((error) => {
        console.log("版本检查失败:", error);
      });
  },
  // 弹窗主颜色（不填默认粉色）
  appUpdateColor: "f00",
  // 弹窗图标（不填显示默认图标，链接配置示例如： '/static/demo/ic_attention.png'）
  appUpdateIcon: "",
};
